1. Field of the Invention
The present invention relates to gamma correction of video intensity values and, more particularly, to an improved piece-wise approximation method for gamma correction in providing linear responses on display devices by increasing more segmentation points at the nonlinear portion of gamma correction curves.
2. Description of the Prior Art
Computer graphics systems convert image representations stored in the computer's memory to image representations which are easily understood by humans. Cathode ray tubes (CRTs) are typical displaying devices for the converted image representations, where these images are divided into arrays of pixel elements which can be stimulated to emit a range of brightness. The particular brightness of light that a pixel emits is called its "value".
All CRTs have a nonlinear transfer characteristic, i.e., the reproduced brightness on the CRT screen is a nonlinear function of the control-grid video drive. This means that doubling the voltage applied by CRT monitors will not double the brightness of the associate pixel. When display graphics are produced on graphics workstations, it is necessary to compensate for this nonlinearity. The compensation of brightness intensity values to produce a linear gradation of brightness intensities in response to a linear range of brightness intensity values is called "gamma correction". Thus, a conversion circuit has been included in most modern graphics workstations to provide linear response on the graphics monitors, where this conversion circuit is called a gamma correction circuit.
A simple method of performing gamma correction on a digitized intensity signal is to translate each of the n-bit red, green, and blue (RGB) brightness intensity values to compensated n-bit brightness intensity values using a brightness lookup table. This lookup table is typically stored in a solid state memory, usually in a read-only memory (ROM), and includes a range of brightness intensity values, each of which is associated with a corresponding gamma corrected value. However, present ROM gamma correction tables are slow and require many computer work cycles to complete gamma correction.
In many other prior art graphic workstations, gamma correction is accomplished with a random access memory (RAM) brightness lookup table for pixel brightness. The disadvantage of this method and apparatus is that RAM brightness lookup table does not allow for data compression. Also, since the brightness lookup table is used for the gamma function, not only is it required, but it cannot be used for other things.
Another prior art method uses a fixed spacing piece-wise linear approximation method of the gamma correction function to gamma correct input brightness intensity values, where selected brightness intensity values are gamma corrected into compensated brightness intensity values that are typically stored in a solid state memory. This method only requires the storing of the selected brightness intensity values and not every single value, hence, a great reduction of the requiring memory is achieved as comparing to the method of lookup table. However, the piece-wise linear approximation is inaccurate, and that is because fixed spacing makes the space in between two selected values to be fixed. Therefore, unable to look after both the accuracy at the linear and nonlinear portion of the gamma correction curve and the acceptable size of the gamma correction circuit at the same time.
A further prior art, fixed spacing piece-wise linear approximation method and lookup table method are combined to form a composite method. That is, applying lookup table method against the nonlinear portion of the gamma correction curve for increasing the gamma corrected accuracy, and applying piece-wise linear approximation method against the linear portion of the gamma correction curve for reducing the size of the gamma correction circuit. Nevertheless, the memory requires for this method is still quite large.
One more prior art method, which uses ten-bit brightness intensity values and are gamma corrected into eight-bit brightness intensity values that are written to a frame buffer. In this method, gamma correction is performed by also using the piece-wise linear approximation of the gamma correction function. The values are read from the frame buffer and are further adjusted in a brightness lookup table which provides eight-bit brightness intensity values to a digital-to-analog converter. The first correction by way of the piece-wise linear approximation provides increased accuracy; however, the piece-wise linear approximation is inaccurate enough that additional correction is required by a brightness lookup table connected to the output of the frame buffer.
The present invention does not require a brightness lookup table and thus allows the brightness lookup table to be eliminated or to be used for other purposes. Hence, there is no need for a large memory to store the lookup table. The other prior art methods utilizing approximation of the gamma correction function provides improved gamma correction over other techniques but still suffers from disadvantages. For example, there is an increase in the amount of hardware required to implement this method. There is therefore a long-felt need in searching for an improved approximation method of the gamma correction function that saves memory, enhances gamma corrected accuracy, and also reduces circuit size.